A control program may provide, for example, for the control/regulation of technical processes and other functions in a motor vehicle. Such a control program is capable of being run on a computing device, in particular a microprocessor, of a controller of a motor vehicle. The control program is subdivided into a plurality of tasks, with each task having at least one process. Different priorities are assigned to the individual tasks. The control program may be executed in a cooperative or a preemptive mode.
Execution of individual tasks of a control program in the cooperative mode apparatus, arrangement or structure that for tasks having different priorities, a higher priority task to be performed causes an interruption of a lower priority task currently being performed. As compared to the preemptive mode, in which a higher priority task to be performed interrupts a process of a lower priority task currently being performed, in the cooperative mode the higher priority task waits for the process of a lower priority task currently being performed to end. Only then is the lower priority task interrupted and the higher priority task performed. When the higher priority task is completed, the lower priority task is continued in the process before which it was interrupted.
The execution of the task of a control program in the cooperative mode is referred to in German Published Patent Application No. 195 00 957. The interruption of a lower priority task by a higher priority task is part of the function of a multi-tasking operating system. An example of such a multi-tasking operating system, which supports the cooperative mode as well as the preemptive mode in the execution of control programs, is provided by the Real Time Operating System ERCOS® from ETAS Entwicklungs- und Applikationswerkzeuge für elektronische Systeme [Development and Application Tools for Electronic Systems] GmbH & Co. KG, Stuttgart, Germany (see ETAS GmbH & Co. KG: ERCOS® V2.00 manual, Stuttgart, 1998). Reference is expressly made to German Published Patent Application No. 195 00 957 and the ERCOS® manual, which are incorporated by reference.
The run time of the processes varies, depending on the load on the computing device. For this reason, and because of the possible interruptions caused by other higher priority tasks, the sequence of the process requests may be different for multiple executions of the same control program. In other words, the exact sequence of process requests is not known after the control program executes, and cannot be reconstructed for simulation purposes, for example.
It is believed that there are various methods for simulation of a control program or portions thereof (algorithm). Subsequent simulation of an algorithm or of the control program using measured data is designated as offline open loop (OOL) simulation. So-called offline closed loop (OCL) simulation involves simulation of an algorithm or of the control program using a simulation model in a closed simulation loop. The lack of reproducibility of the sequence of executed processes causes significant problems, especially for subsequent simulation of the algorithm using measured data (OOL).
Algorithms controlled by a multi-tasking operating system are may be simulated in an optimum state. That is, the individual tasks of the control program are called in such a way that no interruption occurs.
However, this may have the disadvantage that simulation under actual conditions is not possible.
German Patent No. 100 61 001 refers to a “Method and Control Device for Controlling Technical Processes in a Motor Vehicle”, in which a control program may be simulated under actual conditions. The method referred to in German Patent No. 100 61 001 is based on storing the process sequence in the memory of a computing device during the actual execution of the control program.